﻿using System;
using System.ComponentModel;


/// <summary>
/// 枚举扩展
/// </summary>
public static class EnumExtensions
{
    /// <summary>
    /// 获取定义在枚举上的描述元数据。
    /// </summary>
    /// <param name="value">要获取描述的枚举值。</param>
    /// <returns>成功返回获取到的描述文本，否则返回 null</returns>
    public static string GetDescription(this Enum value)
    {
        var type = value.GetType();
        string name = Enum.GetName(type, value);
        var fi = type.GetField(name);
        var des = fi.GetCustomAttributes(typeof(DescriptionAttribute), false) as DescriptionAttribute[];
        if (des != null && des.Length > 0)
        {
            return des[0].Description;
        }
        return null;
    }
}

